package com.yl.project.lvyou.booking.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yl.framework.aspectj.lang.annotation.Excel;
import javax.persistence.*;
import com.yl.framework.web.domain.BaseEntity;
import java.util.Date;

/**
 * 门票预订对象 ticket_booking
 * 
 * @author yl
 * @date 2025-03-15
 */
@Table(name="ticket_booking")
public class TicketBooking extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预订ID */
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    /** 订单编号 */
    @Excel(name = "订单编号")

    @Column(name = "order_no")
    private String orderNo;
    /** 用户ID */
    @Excel(name = "用户ID")

    @Column(name = "user_id")
    private Long userId;
    /** 景区ID */
    @Excel(name = "景区ID")

    @Column(name = "scenic_id")
    private Long scenicId;
    /** 景区名称 */
    @Excel(name = "景区名称")

    @Column(name = "scenic_name")
    private String scenicName;
    /** 参观日期 */
    @Excel(name = "参观日期", width = 30, dateFormat = "yyyy-MM-dd")

    @Column(name = "visit_date")
    private String visitDate;
    /** 门票数量 */
    @Excel(name = "门票数量")

    @Column(name = "ticket_count")
    private Long ticketCount;
    /** 单价 */
    @Excel(name = "单价")

    @Column(name = "unit_price")
    private Double unitPrice;
    /** 总价 */
    @Excel(name = "总价")

    @Column(name = "total_price")
    private Double totalPrice;
    /** 联系人姓名 */
    @Excel(name = "联系人姓名")

    @Column(name = "contact_name")
    private String contactName;
    /** 联系人电话 */
    @Excel(name = "联系人电话")

    @Column(name = "contact_phone")
    private String contactPhone;
    /** 订单状态：0-待支付，1-已支付，2-已取消，3-已完成 */
    @Excel(name = "订单状态：0-待支付，1-已支付，2-已取消，3-已完成")

    @Column(name = "status")
    private Integer status;
    /** 支付时间 */
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")

    @Column(name = "payment_time")
    private Date paymentTime;
    @Column(name ="username")
    private String username;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setScenicId(Long scenicId) 
    {
        this.scenicId = scenicId;
    }

    public Long getScenicId() 
    {
        return scenicId;
    }
    public void setScenicName(String scenicName) 
    {
        this.scenicName = scenicName;
    }

    public String getScenicName() 
    {
        return scenicName;
    }
    public void setVisitDate(String visitDate)
    {
        this.visitDate = visitDate;
    }

    public String getVisitDate()
    {
        return visitDate;
    }
    public void setTicketCount(Long ticketCount) 
    {
        this.ticketCount = ticketCount;
    }

    public Long getTicketCount() 
    {
        return ticketCount;
    }
    public void setUnitPrice(Double unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public Double getUnitPrice() 
    {
        return unitPrice;
    }
    public void setTotalPrice(Double totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public Double getTotalPrice() 
    {
        return totalPrice;
    }
    public void setContactName(String contactName) 
    {
        this.contactName = contactName;
    }

    public String getContactName() 
    {
        return contactName;
    }
    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setPaymentTime(Date paymentTime) 
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() 
    {
        return paymentTime;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderNo", getOrderNo())
            .append("userId", getUserId())
            .append("scenicId", getScenicId())
            .append("scenicName", getScenicName())
            .append("visitDate", getVisitDate())
            .append("ticketCount", getTicketCount())
            .append("unitPrice", getUnitPrice())
            .append("totalPrice", getTotalPrice())
            .append("contactName", getContactName())
            .append("contactPhone", getContactPhone())
            .append("status", getStatus())
            .append("paymentTime", getPaymentTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
